package com.xsd.rabbitmq.simple;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * @Description: 生产者
 * @Author: zhoufuzong
 * @Created: 2021-03-14 10:13:35
 * @Version: 1.1.0
 */

public class Producer {
    static final String QUEUE_NAME="simple_queue";

    public static void main(String[] args) throws IOException, TimeoutException {

        // 创建连接工厂
        ConnectionFactory connectionFactory = new ConnectionFactory();
        // 主机地址
        connectionFactory.setHost("192.168.1.103");
        connectionFactory.setPort(5672);
        // 虚拟机主机名称
        connectionFactory.setVirtualHost("/");
        // 连接用户名
        connectionFactory.setUsername("admin");
        connectionFactory.setPassword("admin");

        // 创建连接
        Connection connection = connectionFactory.newConnection();
        // 创建频道

        Channel channel = connection.createChannel();


        // 声明创建队列
        /*
        参数一：队列名称
        参数二：是否定义持久化队列 服务停掉以后，消息还在
        参数三：是否独占本次连接 是否允许一个connection 有多个channel
        参数四：是否载不使用时自动删除队列
        参数五：队列其他参数
         */
        channel.queueDeclare(QUEUE_NAME,true,false,false,null);
        String message= " hello rabbitmq";
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        System.out.println("已发送消息,"+message);
        // 释放资源
//        channel.close();
//        connection.close();

    }
}
